
class Utils {
    constructor () {
        // if (new.target === Utils) throw new Error('该工具类不能实例化')
    }

}

Object.assign(Utils.prototype, {
    /**
     * 判断数据类型
     * @param {*} con 要判断的 值
     * @param {String} type （记得大驼峰写法）
     * @returns {boolean}
     */
    isType (con, type) {
        return Object.prototype.toString.call(con) === `[object ${type}]`
    },

    /**
     * 获取数据类型
     * @param {*} con 要获取的 类型 （记得大驼峰写法）
     * @return {String} 返回对应的类型
     */
    getType (con) {
        /**
         * 所有类型
         * @type {string[]}
         */
        let type = ['String', 'Number', 'Boolean', 'Symbol', 'Undefined', 'Null',
            'Function', 'Date', 'Array', 'Object', 'RegExp', 'Error',
            'HTMLDocument', 'Window']
        return type.find(_ => Object.prototype.toString.call(con).includes(_))
    },
})

export default Utils
